Traditional banking requires that users transact with branch offices of banks. Such transactions may require users to walk into the branch banks or at least use automatic teller machines (ATMs) outside such branch banks. Moreover, limited remote banking resources are available today, where users can check their account balance(s) or pay their bills online. However, what is needed is mechanisms for virtual banking that will provide an experience to users as if they were actually interacting with a branch office bank.